package com.ship.dispatch.service;
/**
 *@title SpDispatchSchemeExecuteService
 *@description
 *@author yl
 *@create 2023/12/13 0013
 */

import com.ship.common.core.web.domain.JsonResult;
import com.ship.common.business.service.BaseService;
import com.ship.dispatch.bean.SpDispatchSchemeExecute;
import com.ship.dispatch.bean.boats.info.*;
import com.ship.dispatch.bean.fob.SpFobBaseBean;
import com.ship.dispatch.bo.ItemStatisticsSimpleBo;
import com.ship.dispatch.bpm.vo.dto.FormTemplate;
import com.ship.dispatch.bpm.vo.dto.TaskDto;
import com.ship.dispatch.service.fob.FobBaseService;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.List;

public interface SpDispatchSchemeExecuteService extends BaseService<SpDispatchSchemeExecute> {
    /**
     * 根据创建流程id 查询 船运执行记录
     * @param schemeDetailId
     * @return
     */
    SpDispatchSchemeExecute getExceuteByInstanceId(String schemeDetailId);

    /**
     *
     * @param processInstaneId
     * @param nodeType
     * @return
     */
    SpFobBaseBean getAssigenersByNode(String processInstaneId, String nodeType);
    /**
     * 统计方案执行情况
     * @return
     */
    JsonResult countSchemeInfo(String planYear);

    /**
     * 组装表单数据，绑定业务单据进行回显
     * @param templates
     * @param dto
     * @return
     */
    List<FormTemplate> bingdFormTemplate(List<FormTemplate> templates, String key,String processInstaneId);

    /**
     * 删除船运执行接口
     * @param id
     * @return
     */
    JsonResult deleteEexecute(Long id);

    List<String> queryImoList(ItemStatisticsSimpleBo bo);

    List<QueryAisInfo> queryAisByShipName(Long id) throws ParseException;

    List<QueryFuelConsumptionTrendInfo> queryFuelConsumptionTrend(Long id);

    List<QueryEvaporationConsumptionTrendInfo> queryEvaporationConsumptionTrend(Long id);

    QueryShipTraceInfo queryMmsiByShipName(Long id);

    List<BoatsEventMessageInfo> queryBoatsEventMessageById(Long id);

    Integer queryTransportShipNumber();

    String queryCarryOutNumber();

    BigDecimal getPaymentAmount(String proceeInstanceId, Object port);

    BigDecimal getPaymentAmountUn(String proceeInstanceId, Object port);
}
